Peripheral Component Interconnect (PCI) busses allow for communications between central processing units (CPUs) and other system components, such as input/output (I/O) devices. PCI device adapters provide interfaces between system components and the PCI busses. PCI bridges provide interfaces between a PCI bus and either another PCI bus (in the case of a PCI-to-PCI bridge) or another type of bus (e.g., a processor side bus). Device drivers control how software applications are allowed to access the various I/O devices and the corresponding PCI adapter devices. This control can include the management and access to PCI configuration space for the various adapter devices.
Certain PCI adapter devices, such as those compliant with versions of PCI-express (PCIe), allow for the creation and use of virtual functions. These virtual functions can, for instance, be used to allow for multiple device drivers to share access to a common physical function or device.